Transform map at printer cartridge

ABSTRACT

A transform wrapper is stored on a memory device and the memory device may be included in a printer cartridge. The transform wrapper may dynamically build a transform map for a printer based on metadata stored at the memory device. The metadata may indicate at least one of a type of depositing material, transform map, print media and printer.

BACKGROUND

Output devices such as printers may implement a subtractive color model,like a cyan, magenta, yellow, and black (CYMK) color model, while inputdevices such as computer monitors, mobile phones, and other inputdevices may implement an additive color model, like an red, green andblue (RGB) color model.

To output data from an input device, such as a graphic, text or acombination thereof, output devices may convert the additive color modelinto a subtractive color model via a print color transform.Manufacturers and/or vendors are challenged to provide print colortransform such that graphics and/or text are outputted from outputdevices, like a printer, with more accurate color representation.

BRIEF DESCRIPTION OF THE DRAWINGS

The following detailed description references the drawings, wherein:

FIG. 1 is an example block diagram of a printer cartridge including atransform wrapper to build a transform map;

FIG. 2 is example block diagram of a memory device of FIG. 1;

FIG. 3 is an example block diagram of a printer cartridge includinginstructions for generating a transform map at the printer cartridge;and

FIG. 4 is an example flowchart of a method for generating a transformmap at a printer cartridge.

DETAILED DESCRIPTION

Specific details are given in the following description to provide athorough understanding of examples. However, it will be understood thatexamples may be practiced without these specific details. For example,systems may be shown in block diagrams in order not to obscure examplesin unnecessary detail.

Print color transforms may be dependent on a particular ink or tonerformulation. Therefore, it may be desirable to provide color tablesalong with the printer inks or toners, rather than include them inprinter firmware or a printer driver. However, compared to storing colortables in printer firmware, the management of color data in printersupplies may be more complicated. For instance, a customer may haveinstalled a mix of supply versions in the printer, and differentsupplies may have changes in inks and color tables and may supportdifferent media. In addition, those supplies may be used by multipleprinters, or be used in printers that have not yet been developed.

Accordingly, examples herein may include a system embedded in the printcartridge memory, which allows for multiple versions and permutations ofinks, color tables, print media, and/or printers. In one example, aprinter cartridge may include a memory device. A transform wrapper maybe stored on the memory device. The transform wrapper may dynamicallybuild a transform map for a printer based on metadata stored at thememory device. The metadata may indicate at least one of a type ofdepositing material, transform map, print media and printer.

The transform wrapper may use the metadata for building transform datafrom more primitive data elements, or other existing transforms. Thisdata transform or encoding may provide flexibility to handle thedifferent versions and permutations that may arise, such as changes ininks, media support, color tables, and printers. For example, includinga color table map on a printer cartridge may offer improved ink/tonertypes to customers that didn't exist at a time the original product wasmanufactured. Also, examples may be able to correct color tables inprinters in the field for errors discovered after the start ofmanufacturing.

Further, examples may correct color tables due to changes in media andadd support for media types that didn't exist at the time the productwas manufactured. Moreover, examples may introduce inks/toners withdifferent color characteristics as well as introduce different improvedcolor tables for a single color, without requiring the customer toreplace all ink/toner supplies to correct for errors. Examples mayfurther reduce a required memory storage space on the printer cartridgefor storing color tables.

Referring now to the drawings, FIG. 1 is an example block diagram of aprinter cartridge 100 including a transform wrapper 120 to build atransform map 140. The printer cartridge 100 may be any type ofcartridge to store a depositing material. Example depositing materialsmay include ink, toner, plastic, polymer, powder metal, alloy and thelike. In one example, the printer cartridge 100 may be an ink cartridgethat contains liquid ink for use with an inkjet printer. In anotherexample, the printer cartridge 100 may be a toner cartridge thatcontains dry toner powder for use with a laser printer.

The printer cartridge 100 is shown to include a memory device 110. Thememory device 110 may be any electronic, magnetic, optical, or otherphysical storage device. For example, the memory device 110 may be aRandom Access Memory (RAM), an Electrically Erasable ProgrammableRead-Only Memory (EEPROM), a Read-only memory (ROM), flash memory, astorage drive or the like.

The memory device 110 is shown to store a transform wrapper 120, wherethe transform wrapper 120 includes metadata 130. The transform wrapper120 may refer to any type of container or wrapper format, such as ametafile format that describes how different data elements and metadatacoexist in a file. The term metafile may refer to a file format that canstore multiple types of data. The term metadata 130 may includestructural metadata and/or descriptive metadata. Structural metadata mayrefer to the design and specification of data structures, such as acontainer of data. Descriptive metadata may refer to individualinstances of application data, such as the data content.

The transform wrapper 120 may dynamically build a transform map 140 fora printer (not shown), such as laser or inkjet printer, based on themetadata 130 stored at the memory device 110. The metadata 130 mayindicate a type of the depositing material, transform map, print mediaand printer. The metadata 130 will be explained in greater detail belowwith respect to FIG. 2.

The transform map 140 may be a type of color table and/or map. Asexplained above, a color table may be used to convert between differentcolor models. For example, before an input image can be printed as aphysical output, the input additive color model, such as RGB, may beconverted to an output subtractive color model, such as CMYK. This maybe done using a color table that transforms or converts RGB color datainto CMYK color data. Examples of RGB color models may include sRGB,Adobe® RGB, scan RGB, and the like. However, examples are not limited tothe RGB and CYMK color models, and may include any type of input and/oroutput color models, such as the Specifications for Web OffsetPublications (SWOP) CMYK model and the International Commission onIllumination (CIE) L*a*b* color model.

In one example, the transform map 140 may correspond to a particularmedia type. For example, particular paper types, or particular papercolors may have corresponding transform maps 140. For example, onetransform map 140 may correspond to plain paper and another transformmap 140 may correspond to thicker paper, such as company letterhead, orbond paper. In another example, different degrees of output quality mayhave different transform maps 140. For example, a “draft” quality mayhave one transform map 140, and a “best” quality may have a differenttransform map 140. In yet another example, different input devices mayhave different corresponding transform maps 140. For example, differentmodels of printers may have different corresponding transform maps 140.

While FIG. 1 show a single transform map 140, examples of the printercartridge 100 may include a plurality of transform maps 140, such as fordifferent types and/or versions of printers, media, depositingmaterials, users and the like. Moreover, while FIG. 1 shows a singleprinter cartridge 100, a plurality of the print cartridges 100 may beinterfacing with a single printer. Each of these printer cartridges 100may correspond to a different color.

For example, one of the printer cartridges 100 may include black ink andanother of the printer cartridges may include cyan, magenta and yellowink. In another example, one of the printer cartridges 100 may includeblack ink, another of the printer cartridges 100 may include cyan ink,yet another of the printer cartridges 100 may include magenta ink, andyet another of the printer cartridges 100 may include yellow ink.Further, each of these printer cartridges 100 may contain the transformmap 140. Also, the transform map 140 of one of the printer cartridges100 may be influenced by another of the printer cartridges 100, such asif different versions of the printer cartridges 100 are used togetherfor a single printer.

FIG. 2 is example block diagram of a memory device 210 of FIG. 1. Thememory device 210 of FIG. 2 may respectively include at least thefunctionality and/or hardware of the memory device 110 of FIG. 1. Forinstance, the memory device 210 is shown to include a transform wrapper220, which further includes metadata 230. Here, the metadata 230 isfurther shown to include a property 232, tag 234, condition 236 andrecipe 238. Further, the memory device 210 is shown to store primitivedata 250. While FIG. 2 shows a single property 232, tag 234, condition236 and recipe 238, examples may include a plurality of the properties232, tags 234, conditions 236 and/or recipes 238. For instance, theremay be separate tags 224 for the type of media, color space, supplyfamily and the like.

The property 232 may describe primitive data 250 stored and/or generatedby the printer cartridge 100. The primitive data 250 may include basiccolor information about the contents of the printer cartridge 100, suchas a version, depositing material channel, and/or dimension of theprinter cartridge 110. The dimension may include a channel and/or countof nodes of a color table. The channel may relate to a type of color.The node may indicate output colorant amount.

The tag 234 may provide an identification of the printer cartridge 100.For example, the tag 234 may include a color space, media type, printquality, printer platform, supply family, and the like. The condition236 may restrict when the transform map 140 is available for use. Forexample, the condition 236 may specify which of a plurality of types oftransform maps to use based on the tag 234. In one example, thecondition 236 may include a Boolean expression of properties 232 andtags 234. For example, the condition 236 may be used to specifyexception color tables that handle cases such as multiple printerplatforms, or multiple ink color revisions.

The recipe 238 may include instructions for how to build the transformmap 140 from at least one of an existing map and the primitive data 250.In one example, the instructions of the recipe 238 may utilize a stackmodel with reverse Polish notation (RPN) operators. The recipe 238 mayuse tags 234, to identify components, such as the existing map 238and/or primitive data 250. Without tags 234, the recipe 238 would onlybe able to identify other components using their properties 232. Thismay be problematic as the same set of properties 232 may describemultiple components. For example, there may be multiple channel mapcomponents that have the same channel color (e.g. Cyan) and node count(e.g. 17-cubed) properties 232.

The transform map 140 may be a channel map and/or a color map. The colormap may include a mapping for a plurality of colors while the channelmap may include a mapping for only one of the plurality of colors. Thecolor map may, for example, convert between the CYMK and RGB colormodels. The color map may include a plurality of the channel maps andthe channel map may include the primitive data.

In one example, the recipe 238 may include instructions to select aplurality of the channel maps by matching at least one of the property232 and the tag 234 of the primitive data and to combine the pluralityof channel maps to build the color map. Moreover, the primitive data maynot be selected if there is a mismatch with the tag 234 and/or property232. For example, the tag 234 may match the media type, such as plainpaper, but there may be a mismatch with the property 232, such asdifferent colors. In this case, the primitive data may not be usedbecause of the mismatch with the property 232, despite the matching tag234.

Each of the channel maps may correspond to one of a plurality ofdepositing material colors of the printer. For instance, the recipe may238 may define the operation for building a CMYK color map for colormatching an RGB source color to a specific printer's plain paper, normalquality mode. Here, the condition 236 may be set to default, such thatthis color table will normally be used when referenced by a set (orsubset) of matching tags 234. The recipe 238 may specify that color datatables for the individual inks, e.g. channel maps, are to be determinedby referencing the properties 2232, tags 234 and conditions 236, pushedonto the stack, and then combined to build the CYMK color map.

In another example, the recipe 238 may include instructions to build thechannel map based on a neutral axis, a set of seed nodes and a deltatable included in the primitive data 250. The neutral axis may relate toa line extending from an origin of a three-dimensional color table to anode of the color table farthest from the origin. The set of seed nodesmay correspond to nodes of a compressed color table. The delta table mayindicate a difference between an interpolated color table node and acorresponding actual color table. For example, the recipe 238 may definethe operation for building the cyan channel map by pushing elements ontoa stack, such as the neutral axis, set of seed nodes, and the deltatable.

The transform map 140 may be a base and/or modifier map. The base mapmay be used without any modification by the printer. The modifier mapmay be used to modify at least one of the base map and the primitivedata. In one example, the recipe 238 may include instructions to build anew map based on the modifier map and the base map. The modifier map maybe used to specify scale, specify offset and/or select replacement ofdata of the base map. For example, a draft-mode color table may bespecified as a normal-mode color table modified with a small set ofscale factors. For instance, the modifier map could be referenced by thebase map's recipe 238 to change the node values in the base map.

Here, the conditions 236 may specify a printer platform and specificcolor ink versions. These conditions 236 may then be tested. If true,this color table may be used instead of the default. The recipe 238 mayuse inheritance to allow re-use of existing color data. For example, thechannel map for a prior printer platform may be pushed onto the stack.Next, a scalar modifier table may be pushed onto the stack. Finally, anoperator may apply the scalar table to the inherited channel map.

The above examples for specifying the creation and application oftransform maps 140 as well as other color management data elements mayexist on the supplies (e.g. printer cartridges), may be updated in thesupplies, and may be resolved run-time when a customer changes inks ortoners. The metadata 230 including tags 234, properties 232, andconditions 236 may allow for versioning and special casing for thepermutation of potential changes in printers, inks, and color tables.The tags 234 may also provide references to allow inheritance, where acolor data element may be defined as a derivation of a differentelement. The recipe 238 may specify the construction of color transformdata, and also provide a means of specifying the construction of colordata that is compactly derived from other data. In one example, themetadata 230 may be compiled into a compact binary symbolicrepresentation prior to storage in the memory device 210.

FIG. 3 is an example block diagram 300 of a computing device includinginstructions for generating a transform map at a printer cartridge. Inthe example of FIG. 3, the device 300 includes a processor 310 and amachine-readable storage medium 320. The machine-readable storage medium320 further includes instructions 322, 324 and 326 for generating atransform map at a printer cartridge.

The computing device 300 may be, for example, a printer cartridge, aprinter, a mobile device, a fax machine, multimedia device, a securemicroprocessor, a notebook computer, a desktop computer, an all-in-onesystem, a server, a network device, a controller, a wireless device, orany other type of device capable of executing the instructions 322, 324and 326. In certain examples, the computing device 300 may include or beconnected to additional components such as memories, controllers, etc.

The processor 310 may be, at least one central processing unit (CPU), atleast one semiconductor-based microprocessor, at least one graphicsprocessing unit (GPU), a microcontroller, special purpose logic hardwarecontrolled by microcode or other hardware devices suitable for retrievaland execution of instructions stored in the machine-readable storagemedium 320, or combinations thereof. The processor 310 may fetch,decode, and execute instructions 322, 324 and 326 to implementgenerating the transform map at the printer cartridge. As an alternativeor in addition to retrieving and executing instructions, the processor310 may include at least one integrated circuit (IC), other controllogic, other electronic circuits, or combinations thereof that include anumber of electronic components for performing the instructions 322, 324and 326.

The machine-readable storage medium 320 may be any electronic, magnetic,optical, or other physical storage device that contains or storesexecutable instructions. Thus, the machine-readable storage medium 320may be, for example, Random Access Memory (RAM), an ElectricallyErasable Programmable Read-Only Memory (EEPROM), a storage drive, aCompact Disc Read Only Memory (CD-ROM), and the like. As such, themachine-readable storage medium 320 can be non-transitory. As describedin detail below, machine-readable storage medium 320 may be encoded witha series of executable instructions for generating the transform map atthe printer cartridge.

Moreover, the instructions 322, 324 and 326 when executed by a processor(e.g., via one processing element or multiple processing elements of theprocessor) can cause the processor to perform processes, such as, theprocess of FIG. 4. For example, the generate instructions 322 may beexecuted by the processor 310 to generate a transform map based on aproperty and a tag included at the printer cartridge (not shown). Thetest instructions 324 may be executed by the processor 310 to test acondition associated with the transform map and included at the printercartridge.

The allow instructions 326 may be executed by the processor 310 to allowthe transform map to be used by a printer (not shown) if the testedcondition is satisfied. The property may describe primitive data storedand/or generated by the printer cartridge. The tag may provide anidentification of the printer cartridge. The transform map may be storedat the printer cartridge. A change in the metadata may be communicatedfrom the print cartridge to the printer during run-time, if at least onea type of a depositing material, transform map, print media and printerchanges.

FIG. 4 is an example flowchart of a method 400 for generating atransform map at a printer cartridge. Although execution of the method400 is described below with reference to the printer cartridge 100,other suitable components for execution of the method 400 can beutilized, such as the printer cartridge 200. Additionally, thecomponents for executing the method 400 may be spread among multipledevices. In certain scenarios, multiple devices acting in coordinationcan be considered a single device to perform the method 400. The method400 may be implemented in the form of executable instructions stored ona machine-readable storage medium, such as storage medium 320, and/or inthe form of electronic circuitry.

At block 410, the printer cartridge 100 executes a transform wrapper 120to dynamically generate a transform map 140 for a printer based onmetadata 130 stored at the printer cartridge 100. At block 420, thetransform map 140 is selected to be used by the printer based on testinga condition included in the metadata 130. The metadata 130 may indicatea type of depositing material, transform map, print media and/orprinter. At least one of a plurality of different types of the transformmap 140 is generated and used based on a property and tag included inthe metadata 130.

We claim:
 1. A method of correcting a color table in a printer using amemory device of a printer cartridge installed in the printer, thememory device comprising a non-transitory data storage, a transformwrapper stored on the data storage, and metadata stored on the datastorage, the metadata indicating at least one of a type of depositingmaterial of the printer cartridge, a type of transform map, and a typeof printer corresponding to the printer cartridge, the methodcomprising: using the transform wrapper to build a transform map for theprinter based on the metadata stored on the memory device; andoutputting the transform map to the printer in which the printercartridge is installed, the transform map correcting the color table ofthe printer.
 2. The method of claim 1, wherein, the metadata furtherincludes at least one of a property, tag, condition and recipe, theproperty is to describe primitive data that is stored or generated bythe printer cartridge, the tag is to provide an identification of theprinter cartridge, the condition is to restrict when the transform mapis available for use, and the recipe is to include instructions for howto build the transform map from at least one of an existing map and theprimitive data.
 3. The method of claim 2, wherein, the metadata includesthe property, the property includes at least one of a version,depositing material channel, and dimension of the printer cartridge, thedimension includes at least one of a channel and a count of nodes, thechannel relates to a type of color, and a node is to indicate outputcolorant amount.
 4. The method of claim 2, wherein, the metadataincludes the tag and the condition, the tag includes at least one of acolor space, media type, print quality, printer platform, and supplyfamily, and the condition is to specify which of a plurality of types oftransform maps to use based on the tag.
 5. The method of claim 2,wherein, the metadata includes the property and the recipe, thecondition includes at least a Boolean expression of properties and tags,and the instructions of the recipe utilize a stack model with reversePolish notation (RPN) operators.
 6. The method of claim 2, wherein, thetransform map is at least one of a channel map and a color map, thecolor map includes a mapping for a plurality of colors, and the channelmap includes a mapping for one of the plurality of colors.
 7. The methodof claim 6, wherein, the metadata includes the recipe, the recipeincludes instructions to, select a plurality of the channel maps bymatching at least one of the property and tag to the primitive data, andcombine the plurality of channel maps to build the color map, and eachof the channel maps is to correspond to one of a plurality of depositingmaterial colors of the printer.
 8. The method of claim 6, wherein, therecipe includes instructions to build a channel map based on at leastone of a neutral axis, a set of seed nodes and a delta table included inthe primitive data, the neutral axis relates to a line extending from anorigin of a three-dimensional color table to a node of the color tablefarthest from the origin, the set of seed nodes correspond to nodes of acompressed color table, and the delta table is to indicate a differencebetween an interpolated color table node and a corresponding actualcolor table.
 9. The method of claim 6, wherein, the color map is toconvert between CYMK and RGB color models, the color map includes aplurality of the channel maps, and the channel map includes theprimitive data.
 10. The method of claim 2, wherein, the transform map isat least one of a base map and modifier map, the base map is to be usedwithout any modification by the printer, and the modifier map is to beused to modify at least one of the base map and the primitive data. 11.The method of claim 10, wherein, the recipe includes instructions tobuild a new map based on the modifier map and the base map, and themodifier map is to be used to at least one of specify scale, specifyoffset and select replacement of data of the base map.
 12. A memorydevice for a printer cartridge, the memory device comprising:non-transitory data storage; and an interface to output data to aprinter in which the printer cartridge is installed; the data storagecontaining a transform wrapper and metadata, the transform wrapper tobuild a transform map for a printer based on the metadata; wherein themetadata is to indicate at least one of a type of depositing material inthe printer cartridge or a type of transform map.
 13. The memory deviceof claim 12, wherein the transform map corresponds to a particular typeof print media.
 14. The memory device of claim 12, wherein the transformmap corresponds to a particular print quality setting of the printer.15. The memory device of claim 12, wherein: the metadata furthercomprises an indication of different printer models corresponding to theprinter cartridge; and the transform map corresponds to a particularprinter model.
 16. A memory device for a printer cartridge, the memorydevice comprising: non-transitory data storage; and an interface tooutput data to a printer in which the printer cartridge is installed;the data storage containing a transform wrapper and metadata, thetransform wrapper to build a transform map for a printer based on themetadata; wherein the metadata is to indicate a type of depositingmaterial in the printer cartridge.
 17. The memory device of claim 16,wherein the transform map corresponds to a particular type of printmedia.
 18. The memory device of claim 16, wherein the transform mapcorresponds to a particular print quality setting of the printer. 19.The memory device of claim 16, wherein: the metadata further comprisesan indication of different printer models corresponding to the printercartridge; and the transform map corresponds to a particular printermodel.
 20. The memory device of claim 16, wherein, the metadata furtherincludes at least one of a property, tag, condition and recipe, theproperty is to describe primitive data that is stored or generated bythe printer cartridge, the tag is to provide an identification of theprinter cartridge, the condition is to restrict when the transform mapis available for use, and the recipe is to include instructions for howto build the transform map from at least one of an existing map and theprimitive data.